// 函数
function answerGetPriority(value) {
    if (!value) return;

    let status = null;
    if (value === "单选题" || "判断题") status = "dhx-demo_grid-status--done";
    if (value === "多选题") status = "dhx-demo_grid-status--in-progress"
    if (value === "填空题") status = "dhx-demo_grid-status--not-started";
    return `
		<div class='dhx-demo_grid-template'>
			<div class='dhx-demo_grid-status ${status}'></div>
			<span>${value}</span>
		</div>
	`
}
// 静态配置

// UI配置
export const boardTestConfig = {
    // 核心属性
    cols: [
        {
            id: "testColumn",
            type: "line",
            rows: [
                { id: "testToolbar", height: 56 },
                { id: "testGrid" },
            ],
        },
        {
            id: "sheetColumn",
            type: "line",
            rows: [
                { id: "sheetToolbar", height: 56, },
                { id: "sheetGrid" },
            ],
        },
    ],
    // 交互配置
    // 事件绑定
    // 布局配置
    css: "dhx_layout_cell--overflow-auto",
    type: "line",
    // 其他默认值
}

export const testToolbarConfig = {
    // 核心属性
    data: [
        { type: "spacer" },
        {
            "id": "creat",
            "type": "button",
            "value": "新建测试"
        },
    ],
    // 交互配置
    // 事件绑定
    // 布局配置
    css: "app-test-toolbar",
    // 其他默认值
}

export const testContextMenuConfig = {
    // 核心属性
    data: [
        { id: "edit", value: "编辑试卷", "icon": "dxi dxi-plus" },
        { id: "delete", value: "删除测验", "icon": "dxi dxi-delete" },
    ],
    // 交互配置
    // 事件绑定
    // 布局配置
    css: "dhx_widget--bordered",
    // 其他默认值
}

export const testGridConfig = {
    // 核心属性
    columns: [
        {
            id: "testName",
            header: [
                { text: "测试名称", align: "center" },
                { content: "comboFilter", tooltipTemplate: () => "选择一个测试" }
            ],
            align: "center",
            resizable: true,
        },
        {
            id: "number",
            header: [
                { text: "题目数量", align: "center" },
                { content: "inputFilter" }
            ],
            align: "center",
        },
        {
            id: "startDate",
            header: [{ text: "创建日期", align: "center" }, { content: "inputFilter" }],
            align: "center",
            type: "date",
            dateFormat: "%Y/%m/%d",
            editorConfig: { asDateObject: true }
        },
        {
            id: "actions",
            header: [{ text: "操作", tooltip: true, align: "center", rowspan: 2 }],
            mark: () => "dhx-demo_color--gray",
            template: () => `<i class="dxi dxi-dots-vertical row-menu"></i>`,
            align: "center",
            tooltip: false, editable: false, sortable: false, htmlEnable: true,
        }
    ],
    // 交互配置
    dragItem: "both",
    editable: false,
    keyNavigation: true,
    selection: "row",
    // 事件绑定
    // 布局配置
    autoWidth: true,
    height: "auto",
    leftSplit: 1,
    // 其他默认值
}

export const boardAnswerConfig = {
    // 核心属性
    rows: [
        { id: "toolbar", height: 56, },
        { id: "grid" },
    ],
    // 交互配置
    // 事件绑定
    // 布局配置
    // 其他默认值
}

export const sheetToolbarConfig = {
    // 核心属性
    data: [
        {
            "id": "return",
            "type": "button",
            "view": "link",
            "color": "secondary",
            "icon": "mdi mdi-arrow-left",
        },
        { "id": "download", "value": "下载答题卡" },
        { "id": "add", "value": "增加题目" },
        { "id": "delete", "value": "删除题目" },
        { "id": "edit", "value": "编辑题目" },
        { "id": "score", "value": "设置选中分数" },
    ],
    // 交互配置
    // 事件绑定
    // 布局配置
    css: "dhx_widget--bordered",
    // 其他默认值
}

export const sheetGridConfig = {
    // 核心属性
    columns: [
        {
            id: "questionId",
            header: [{ text: "题号", align: "center" },],
            align: "center",
        },
        {
            id: "questionType",
            header: [{ text: "题型", align: "center" },],
            editorType: "combobox",
            options: [
                { id: 1, value: "单选题" },
                { id: 2, value: "多选题" },
                { id: 3, value: "判断题" },
                { id: 4, value: "填空题" },
            ],
            editorConfig: {
                template: ({ value }) => answerGetPriority(value)
            },
            template: answerGetPriority,
            htmlEnable: true,
            // align: "center",
        },
        {
            id: "correctOption",
            header: [{ text: "设置正确选项", align: "center" },],
            align: "center",
        },
        {
            id: "score",
            header: [{ text: " 分数", tooltip: true, align: "center" },],
            align: "center",
        }
    ],
    // 交互配置
    dragItem: "both",
    editable: true,
    keyNavigation: true,
    selection: "row",
    // 事件绑定
    // 布局配置
    autoWidth: true,
    height: "auto",
    leftSplit: 1,
    // 其他默认值
}

// 测试数据

// 1. 选择题池
const selectionSheetsPool = [
    // 单选
    { questionId: 1, questionType: "单选题", correctOption: "A", score: 5, options: ["A", "B", "C", "D"] },
    { questionId: 2, questionType: "单选题", correctOption: "B", score: 6, options: ["A", "B", "C", "D"] },
    { questionId: 3, questionType: "单选题", correctOption: "C", score: 5, options: ["A", "B", "C", "D"] },
    { questionId: 4, questionType: "单选题", correctOption: "D", score: 4, options: ["A", "B", "C", "D"] },

    // 多选
    { questionId: 5, questionType: "多选题", correctOption: "A, C", score: 6, options: ["A", "B", "C", "D", "E"] },
    { questionId: 6, questionType: "多选题", correctOption: "B, D", score: 8, options: ["A", "B", "C", "D", "E"] },
    { questionId: 7, questionType: "多选题", correctOption: "A, B, C", score: 9, options: ["A", "B", "C", "D", "E"] },
    { questionId: 8, questionType: "多选题", correctOption: "A, B, C, D", score: 12, options: ["A", "B", "C", "D", "E"] },
];

// 2. 判断题池
const booleanSheetsPool = [
    { questionId: 1, questionType: "判断题", correctOption: "T", score: 2, options: ["T", "F"] },
    { questionId: 2, questionType: "判断题", correctOption: "F", score: 2, options: ["T", "F"] },
    { questionId: 3, questionType: "判断题", correctOption: "T", score: 2, options: ["T", "F"] },
    { questionId: 4, questionType: "判断题", correctOption: "F", score: 2, options: ["T", "F"] },
];

// 3. 填空题池
const fillInTheBlankSheetsPool = [
    { questionId: 1, questionType: "填空题", correctOption: "（答案一），（答案二）", score: 6 },
    { questionId: 2, questionType: "填空题", correctOption: "（唯一的答案）", score: 4 },
    { questionId: 3, questionType: "填空题", correctOption: "（多空题答案1），（多空题答案2），（多空题答案3）", score: 10 },
    { questionId: 4, questionType: "填空题", correctOption: "（简单答案）", score: 5 },
];

export const testData = [
    {
        testName: "2022年12月02日小测",
        number: 5,
        startDate: "Fri Feb 02 2022 00:00:00",
        status: "已批阅",
        sheets: selectionSheetsPool.slice(0, 4),
    },
    {
        testName: "2022年03月03日小测",
        number: 8,
        startDate: "Sun Mar 03 2022 00:00:00",
        status: "已批阅",
        sheets: selectionSheetsPool.slice(4, 7),
    },
    {
        testName: "2025年01月01日小测",
        number: 10,
        startDate: "Mon Jan 01 2025 00:00:00",
        status: "批阅中",
        sheets: booleanSheetsPool.slice(0, 4),
    },
    {
        testName: "2025年01月10日小测",
        number: 6,
        startDate: "Tue Jan 10 2025 00:00:00",
        status: "未批阅",
        sheets: fillInTheBlankSheetsPool.slice(0, 4),
    },
];
